/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package entities;

import java.util.ArrayList;
import java.util.Iterator;

/**
 *
 * @author alumno
 */
public class Factura {

    private String razonsocial;
    private String RUC;
    private String Fecha;
    private String numeroFactura;
    private ArrayList<DetalleFactura> detalle = new ArrayList<>();
    public static final double IGV = 0.19;

    public Factura(String razonsocial, String RUC, String Fecha, String numeroFactura) {
        this.razonsocial = razonsocial;
        this.RUC = RUC;
        this.Fecha = Fecha;
        this.numeroFactura = numeroFactura;
    }

    public String getRazonsocial() {
        return razonsocial;
    }

    public void setRazonsocial(String razonsocial) {
        this.razonsocial = razonsocial;
    }

    public String getRUC() {
        return RUC;
    }

    public void setRUC(String RUC) {
        this.RUC = RUC;
    }

    public String getFecha() {
        return Fecha;
    }

    public void setFecha(String Fecha) {
        this.Fecha = Fecha;
    }

    public String getNumeroFactura() {
        return numeroFactura;
    }

    public void setNumeroFactura(String numeroFactura) {
        this.numeroFactura = numeroFactura;
    }

    public void agregarDetalle(int cantidad, String producto, double precio) {
        DetalleFactura det = new DetalleFactura(cantidad, producto, precio);
        this.detalle.add(det);
    }

    public ArrayList<DetalleFactura> getDetalle() {
        return detalle;
    }

    public double getSubtotal() {
        double subtotal = 0;
        for (Iterator<DetalleFactura> it = detalle.iterator(); it.hasNext();) {
            DetalleFactura detalleFactura = it.next();
            subtotal += detalleFactura.getSubtotal();
        }
        return subtotal;
    }

    public double getIgv() {
        return this.getSubtotal() * IGV;
    }

    public double getTotal() {
        return this.getSubtotal() + this.getIgv();
    }

    public void imprimir() {
        System.out.println("Factura: " + getNumeroFactura());
        System.out.println("Ruc: " + getRUC());
        System.out.println("Fecha: " + getFecha());
        System.out.println("Razon social: " + getRazonsocial());
        for (Iterator<DetalleFactura> it1 = getDetalle().iterator(); it1.hasNext();) {
            DetalleFactura det = it1.next();
            det.imprimir();
        }
        System.out.println("Subtotal:" + getSubtotal());
        System.out.println("Igv:" + getIgv());
        System.out.println("Total:" + getTotal());
    }
}
